Nelze pouzit komponenty

Otázka od: Andreas Bednarek

18. 6. 2004 10:36

Zdravim konferenci,

problem: nemuzu se pri kompilaci v Delphi 4 dostat pres hlasky

'Field Data.NecoNeco does not have a corresponding component. Remove the
declaration?'

Jak to vzniklo: rozbiham starsi projekt nekoho jineho, je pouzit TDataModule
pro nevizualni komponenty pojmenovany Data, v tomto modulu jsou pouzity
komponenty TRegisterTable, TOneShotTimer. Tyto tridy jsem nasel v nasem
archivu v prislusnych souborech .pas (mam i .dcu).

zkousel jsem: kopirovat .dcu do vsech moznych adresaru kde by je delphi
mohly najit, pridat unity primo do projektu (Project->Add to project).
Dosahl jsem toho, ze mi to nepise podobnou chybovou hlasku hned pri
zobrazovani formulare (F12), ale az pri kompilaci, nenapada me co dal. V
klauzuli uses jsou unity samozrejme uvedene.

(pozn. RegisterTable.pas jsem nasel take na borlandu v archivu
tablechanged.zip, kde je to dohromady s ukazkovym projektem, nicmene kdyz
tento projekt otevru v Delphach, okamzite mi to take napise
'Class
TRegisterTable not found' ci podobne ... ?)


Nevite prosim co s tim?
Diky, potrebuji to nejak rozjet
Andreas (D4)


Odpovedá: Pavel Poles

18. 6. 2004 11:10

>
'Field Data.NecoNeco does not have a corresponding component. Remove the
> declaration?'

Komponenty zrejme nemas nainstalovane, a IDE je proto
pri vytvareni formu nezna a hlasi tuto hlasku.
Pokud je k nim nejaky package zkompiluj ho a nainstaluj, pokud
ne udelej si svuj package nebo pouzij napr. funkci z menu
Component -> Install Component kde si zvolis do jakeho
package chces instalovat. Standartne byva zvolen Borland User package.

Pavel Poles

Odpovedá: Andreas Bednarek

18. 6. 2004 13:40

> >
'Field Data.NecoNeco does not have a corresponding component. Remove the
> > declaration?'
>
> Komponenty zrejme nemas nainstalovane, a IDE je proto
> pri vytvareni formu nezna a hlasi tuto hlasku.
> Pokud je k nim nejaky package zkompiluj ho a nainstaluj, pokud
> ne udelej si svuj package nebo pouzij napr. funkci z menu
> Component -> Install Component kde si zvolis do jakeho
> package chces instalovat. Standartne byva zvolen Borland User package.
>

Diky, tohle jsem neznal, ale nejak to nepomohlo. Sice se mi podarilo udelat
vlastni package -> Compile -> Install -> napsalo mi to, ze TRegisterTable,
TOneShotTimer byly zaregistrovane a na komponent palete mi dokonce neco z
toho pribylo, ale pri kompilovani projektu mi to pise porad to same u tech
stejnych properties.

Kdyz dam Project Options -> Packages -> muj pack -> Components, tak ty
komponenty, ktere to chce tam opravdu jsou!

Tohle bylo prinosne, vlastni pakage jsem jeste nedelal, ale porad nemuzu
zkompilovat svuj projekt.


Kde delam chybu?

Andreas


Odpovedá: Pavel Poles

18. 6. 2004 13:04

> Diky, tohle jsem neznal, ale nejak to nepomohlo. Sice se mi podarilo
udelat
> vlastni package -> Compile -> Install -> napsalo mi to, ze TRegisterTable,
> TOneShotTimer byly zaregistrovane a na komponent palete mi dokonce neco z
> toho pribylo, ale pri kompilovani projektu mi to pise porad to same u tech
> stejnych properties.

Zkontroluj si jestli to v tom *fm souboru opravdu je, je mozne ze kdyz jsi
to uz predtim otviral
ze to Delphi z toho *f?m souboru opravdu vyhodili, takze ted se ti lisi *fm
a pas. Zkus
otevrit a zkompilovat uplne puvodni jednotky jestli je jeste mas...

Pavel Poles


Odpovedá: Lebeda David

18. 6. 2004 13:35

> > >
'Field Data.NecoNeco does not have a corresponding component.
> > > Remove the declaration?'
> >
> Kdyz dam Project Options -> Packages -> muj pack -> Components, tak ty
> komponenty, ktere to chce tam opravdu jsou!
>
> Tohle bylo prinosne, vlastni pakage jsem jeste nedelal, ale porad
> nemuzu zkompilovat svuj projekt.
>

Ahoj,

uvedena hlaska znamena, ze byla nalezena deklarace v pas souboru, ale
odpovidajici
komponenta neexistuje v dfm souboru, neboli ta komponenta neni polozena na
formulari. Kdyz totiz svuj projekt otviras, Delphi nacitaji dfm a samozrejme
nedokazou
vytvorit komponentu, ktera je v dfm popsana, ale neni nainstalovana. Moznosti
jsou:

1) Zkusit ukoncit Delphi nebo je jinak primet k novemu nacteni projektu. Pritom
je treba
projekt hlavne neukladat a na uvedene otazky odpovedet ne.

2) Pokud to nepomuze, mas pravdepodobne uz dfm bez tech komponent, zatimco
zdrojak s nimi pocita. K tomu mohlo dojit tak, ze projekt byl ulozen na
pocitaci, kde
prislusne komponenty nebyly nainstalovany, a nasledne byl treba odnekud ze
zalohy
pas soubor nahrazen pas souborem, z doby, kdy jeste bylo vse OK. V takovem
pripade
ti nezbyde nez se podivat po jeste neporusenem dfm souboru, nebo na vsechny
uvedene hlasky odpovedet Yes a komponenty tam pak rucne nabouchat znovu. Coz
ale
muze byt pekna fuska (napr. v pripade kosatych tabulek s fieldy vytvarenymi v
design
time), nehlede na to, ze treba zapomenes nektere property nastavit stejne jako
byly
puvodne.

David Lebeda